home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d21 / qostnote.arc / EXCEPT13.TEC < prev    next >
Text File  |  1990-07-05  |  4KB  |  73 lines

  1. ID:13 Discussion of Exception #13
  2. Quarterdeck Technical Note
  3. by Bob Perry
  4.  
  5.  
  6. What is "Exception 13?"                              
  7. What can be done to prevent "Exception 13's?"
  8.  
  9.     Exceptions are unusual or invalid conditions associated with 
  10. the execution of a particular instruction by the 80386 processor.  The 
  11. 80386 recognizes several different classes of exceptions, and assigns 
  12. a different vector number to each class. The DESQview-386 memory 
  13. manager, QEMM-386, has been designed to capture these 80386 exception 
  14. vectors and display them directly to the user.
  15.  
  16.     Exception 13 is the "General Protection Fault" error. Any 
  17. privileged instruction or any instruction that references memory can 
  18. trigger an Exception 13. 
  19.  
  20.     In the first case, privileged instructions, the Exception 13 
  21. could indicate that a program has violated the protected mode of the 
  22. 80386 by executing a privileged instruction or I/O reference. Thus, 
  23. when the prompt, "Terminate, Reboot or Continue?" is issued, the 
  24. "Continue" option directs the 80386 to reorder the ranking of 
  25. priviliged instructions and the program should continue to execute.
  26.  
  27.     It is the second case, instructions that reference memory, 
  28. that are far more common to DESQview 386 (and QEMM-386) users.  Here 
  29. the exception can indicate that an application has a bug.  It has over-
  30. written its memory partition, and may in fact be running wild, writing 
  31. code all over the place.  This situation can occur with some programs 
  32. that were written for use on the 8088 processor and may not be useable 
  33. in the 80386's virtual 8086 mode. A few other programs may not be 
  34. compatible with QEMM-386. All this adds up to mean that when 
  35. "Terminate, Reboot or Continue" is displayed, the user can only 
  36. "Terminate."
  37.  
  38.     For those users who are more technically oriented, this over-
  39. writing of the memory partition generally means that a word or a 
  40. double word value of code has been written to the last byte of a 
  41. segment.  The problem or "bug" in the application program has to do 
  42. with wrapping the value to the next segment of memory.
  43.  
  44.     What can the user do to prevent Exception 13's?   The DESQview 
  45. 386 user can try two things:  First, run Change Program and try to 
  46. allocate more memory to the application.  Second, the user can try to 
  47. increase the Protection Level to 3, which will not alleviate the 
  48. source of the Exception 13, but may allow the application to pass more 
  49. descriptive error messages through to the user.  
  50.  
  51.     When Exception 13's are obtained outside of DESQview they are 
  52. either caused by applications written for the 80386 protected mode or 
  53. they are not.  If the faulting application is written for protected 
  54. mode of the 80386, it is likely that this program has no VCPI (Virtual 
  55. Control Program Interface).  Since QEMM-386 is a virtual 8086 program, 
  56. such faulting applications cannot be run under QEMM without VCPI.  The 
  57. user has no choice but to reboot without QEMM, and contact the 
  58. developer of the faulting application for VCPI support.
  59.  
  60.     If the faulting application was not written for the protected 
  61. mode of the '386, the QEMM user is probably using the RAM parameter 
  62. (which is necessary to LOADHI drivers and TSR's). In this case the 
  63. faulting program may be rinning in an area of high RAM in which it 
  64. never thought it would be run.  To correct this problem, the user may 
  65. opt to RAM only specific areas of memory, as described on page 6 of 
  66. the QEMM manual, rather than issue a RAM for all mappable areas.  
  67. Another possible solution to such memory conflicts might be to use the 
  68. EXCLUDE parameter (on page 5 of the QEMM manual) for all known ROM's 
  69. being mapped into RAM.
  70.  
  71.         Copyright (C) 1990 by Quarterdeck Office Systems
  72.              * * *   E N D   O F   F I L E    * * * 
  73.